ديف أوبس

تنصيب SSL مجاني على لينكس

تنصيب شهادة SSL مجانية عبر خدمة Let’s Encrypt على خادوم لينكس

شهادات SSL، أمان المواقع، Let’s Encrypt، لينكس، Apache، Nginx، HTTPS، Certbot، تشفير الاتصال، الأمن السيبراني


مقدمة

في ظل التزايد المطرد في عدد الهجمات الإلكترونية، وازدياد الحاجة إلى حماية بيانات المستخدمين على الإنترنت، أصبحت شهادات SSL عنصراً أساسياً في البنية التحتية لأي موقع ويب. شهادة SSL تضمن تشفير الاتصال بين متصفح المستخدم والخادم، مما يحول دون قدرة المتطفلين على اعتراض أو تعديل البيانات المنقولة. ولحسن الحظ، فإن المبادرات المفتوحة مثل مشروع Let’s Encrypt أتاحت للمستخدمين والمطورين فرصة الحصول على شهادات SSL مجانية وموثوقة، مما يسهم في تعميم استخدام HTTPS وتأمين الويب العالمي.

يناقش هذا المقال كيفية تنصيب شهادة SSL مجانية باستخدام خدمة Let’s Encrypt على خادوم يعمل بنظام لينكس، مع تقديم تفاصيل تقنية متعمقة تغطي معظم الحالات الشائعة، سواء باستخدام خادم الويب Apache أو Nginx، مع التركيز على الاستخدام الأمثل لأداة Certbot الرسمية، والممارسات الأمنية المرتبطة بها.


ما هي شهادة SSL ولماذا يجب استخدامها؟

شهادة SSL (Secure Sockets Layer) أو بشكل أدق TLS (Transport Layer Security) تمكّن من إنشاء اتصال آمن ومشفّر بين خادم الويب والمتصفح. عبر استخدام شهادة صادرة من سلطة موثوقة مثل Let’s Encrypt، يحصل الموقع على البروتوكول الآمن HTTPS بدلاً من HTTP، مما يحقق الفوائد التالية:

  • تشفير البيانات: تُشفّر جميع البيانات المتبادلة، مثل كلمات المرور ومعلومات البطاقات البنكية.

  • تأكيد الهوية: يثق المتصفح بالموقع إذا كانت الشهادة صادرة من سلطة موثوقة.

  • تحسين SEO: جوجل ومحركات البحث الأخرى تفضل المواقع الآمنة في الترتيب.

  • تجنب التحذيرات الأمنية: المتصفحات تعرض تحذيرات صارمة للمواقع غير المؤمنة بـ HTTPS.


لمحة عن Let’s Encrypt

Let’s Encrypt هي سلطة إصدار شهادات (Certificate Authority) مجانية ومفتوحة المصدر مدعومة من منظمات كبرى مثل Mozilla وEFF وCisco. تقدم Let’s Encrypt شهادات SSL بتنسيق DV (Domain Validation) لمدة 90 يوماً قابلة للتجديد تلقائياً.

المزايا الرئيسية:

  • مجانية تماماً

  • سهلة التثبيت والتجديد

  • تدعم التثبيت الآلي عبر أدوات مثل Certbot

  • متوافقة مع جميع المتصفحات الحديثة


نظرة على Certbot

Certbot هي الأداة الرسمية التي توصي بها Let’s Encrypt لتنصيب وتحديث شهادات SSL. وهي أداة مفتوحة المصدر مكتوبة بلغة Python، وتقوم تلقائياً:

  • بإثبات ملكية النطاق (Domain Validation)

  • بتوليد مفاتيح التشفير

  • بتنزيل وتنصيب الشهادة

  • بتحديث إعدادات الخادم (Apache أو Nginx)

  • بإنشاء مهام مجدولة لتجديد الشهادة تلقائياً


المتطلبات الأولية لتنصيب الشهادة

قبل البدء بتنصيب شهادة SSL عبر Let’s Encrypt، يجب توفر الشروط التالية:

المتطلب الوصف
نظام التشغيل لينكس (Ubuntu، Debian، CentOS، وغيرها)
امتلاك نطاق فعّال يجب أن يكون النطاق موجهًا إلى عنوان الـ IP الخاص بالخادم
صلاحيات الجذر (root) لتنفيذ أوامر تتعلق بإعدادات النظام
خادم ويب مثبت Apache أو Nginx مثبت ومشغل
فتح المنفذين 80 و443 للتأكد من وصول Certbot لملف التحقق والتحويل إلى HTTPS

خطوات تنصيب شهادة SSL عبر Let’s Encrypt باستخدام Certbot على Apache

1. تحديث النظام

bash
sudo apt update && sudo apt upgrade -y

2. تنصيب Certbot وأداة Apache الخاصة به

bash
sudo apt install certbot python3-certbot-apache -y

3. تنصيب الشهادة تلقائيًا

bash
sudo certbot --apache

يقوم Certbot بالخطوات التالية:

  • يطلب منك إدخال اسم النطاق

  • يثبت الشهادة بعد التحقق من ملكية النطاق

  • يحدّث إعدادات Apache لإعادة التوجيه من HTTP إلى HTTPS تلقائيًا

4. التحقق من نجاح التثبيت

يمكنك زيارة الموقع باستخدام https:// والتحقق من القفل الأخضر في شريط العنوان، أو عبر الأمر:

bash
sudo certbot certificates

خطوات تنصيب شهادة SSL عبر Let’s Encrypt باستخدام Certbot على Nginx

1. تحديث النظام

bash
sudo apt update && sudo apt upgrade -y

2. تنصيب Certbot وأداة Nginx الخاصة به

bash
sudo apt install certbot python3-certbot-nginx -y

3. تنصيب الشهادة تلقائيًا

bash
sudo certbot --nginx

4. التحقق من نجاح التثبيت

كما في Apache، تحقق من نجاح التثبيت باستخدام المتصفح أو الأمر:

bash
sudo certbot certificates

إعداد التجديد التلقائي للشهادة

شهادات Let’s Encrypt صالحة لمدة 90 يومًا فقط، لذا من المهم التأكد من إعداد التجديد التلقائي. Certbot يقوم بإنشاء مهمة cron تلقائية لهذا الغرض، ولكن من الجيد اختباره يدويًا:

bash
sudo certbot renew --dry-run

إذا لم يحدث التجديد، يجب التأكد من وجود المهمة المجدولة:

bash
cat /etc/cron.d/certbot

أو عبر systemd:

bash
systemctl list-timers

تخصيص إعدادات Apache أو Nginx بعد تنصيب الشهادة

بعد تثبيت الشهادة، يُنصح بتعديل إعدادات الخادم لتعزيز الأمان. على سبيل المثال:

Apache:

apache
SSLEngine on SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains"

Nginx:

nginx
server { listen 443 ssl; server_name example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always; }

التعامل مع شهادات متعددة ونطاقات فرعية

يمكن لـ Certbot إصدار شهادات تغطي نطاقات فرعية متعددة عبر الخيار -d:

bash
sudo certbot --nginx -d example.com -d www.example.com -d blog.example.com

ويُفضل استخدام DNS Wildcard في حالات الخوادم الديناميكية، باستخدام تحدي DNS (DNS-01).


مقارنة بين Let’s Encrypt والشهادات التجارية

المعطى Let’s Encrypt الشهادات التجارية
التكلفة مجانية مدفوعة (50$ – 1000$/سنة)
نوع الشهادة DV فقط DV / OV / EV
الدعم الفني لا يتوفر دعم رسمي مباشر يتوفر دعم شامل
سهولة التثبيت عالية عبر Certbot متوسطة إلى معقدة حسب المزود
التجديد كل 90 يوم تلقائيًا سنوي غالبًا
الشفافية كاملة ومفتوحة المصدر محدودة

حلول أخطاء شائعة أثناء التثبيت

  1. خطأ في التحقق من النطاق: تأكد أن نطاقك يشير إلى IP الخادم الصحيح، وأن المنفذ 80 مفتوح.

  2. فشل التثبيت بسبب إعدادات Apache أو Nginx: تحقق من ملفات التكوين وتأكد من أنها تعمل بشكل سليم.

  3. الشهادة لم تتجدد تلقائياً: تأكد من أن cron أو systemd يعمل كما هو متوقع.

  4. الشهادة منتهية: يمكن إعادة إصدارها يدويًا:

bash
sudo certbot --force-renewal

أدوات إضافية وممارسات أمنية

  • أداة SSL Labs من Qualys: لاختبار جودة شهادة HTTPS بعد التثبيت

    https://www.ssllabs.com/ssltest/

  • تحديثات دورية لـ Certbot: من المهم تحديث Certbot بانتظام:

bash
sudo apt update && sudo apt upgrade certbot
  • تعطيل بروتوكولات SSL/TLS الضعيفة: لضمان الأمان، قم بتعطيل TLS 1.0 و1.1

  • تمكين HSTS: يزيد من أمان الاتصال بمنع التراجع إلى HTTP


خاتمة تقنية

تنصيب شهادة SSL باستخدام Let’s Encrypt على خوادم لينكس يمثل خطوة أساسية لأي موقع يسعى لتوفير تجربة آمنة ومحمية لمستخدميه. توفر هذه الخدمة المفتوحة طريقة فعالة ومجانية لاعتماد بروتوكول HTTPS، دون الحاجة للجوء إلى حلول مكلفة ومعقدة. ومع الاستخدام الصحيح لأداة Certbot والتجديد التلقائي، يمكن ضمان استمرار صلاحية الشهادة دون انقطاع، مما يعزز موثوقية الموقع لدى محركات البحث والمستخدمين على حد سواء.


المصادر والمراجع:

  1. https://letsencrypt.org/docs/

  2. https://certbot.eff.org/